Modern software applications typically are developed by several different groups, each group working on a particular aspect of the application. For example, there may a group focusing solely on the user interface of the application, and another focused on database programming. As a result, each group may desire its own compiler and tool settings. To facilitate this, groups often maintain their own project files where they specify their particular compiler and tool settings.
However, as software applications become larger, and groups are further divided into more specialized subgroups, it can become difficult to manage the large number of project files required. Specifically, if a group makes a change to a project file that should be changed in the project file of every group, such as an additional header file for the compiler, there is currently no reliable way to ensure that each group makes the necessary changes in their project files.
In addition, a project leader of the overall application may wish to make certain global changes, for example changing the location of the code libraries. Currently, the project leader would advise each of the groups to make the changes themselves. The project leader may also desire to make certain default project settings for each of the groups, or to enforce certain best practices project settings for the groups.
What is needed are systems and methods for project sheet inheritance that allows changes in a property sheet file to be automatically propagated to all the projects that inherit from the given property sheet.